package org.example.springweibo.jsonresult;

import lombok.Data;
import org.example.springweibo.exception.ServiceException;
import org.example.springweibo.serviceode.ServiceCode;

import java.io.Serializable;

@Data
public class JsonResult implements Serializable {

    /*操作结果的状态码*/
    private Integer code;

    /*操作失败时的提示文本*/
    private String message;

    /*操作成功时响应的数据*/
    private Object data;

    /*生成表示“陈宫”的响应对象*/
    public static  JsonResult ok(){
        return ok(null);
    }

    /*生成表示"成功"的响应对象，此对象中将包含响应到客户端的数据*/
    public  static JsonResult ok(Object data){
        JsonResult jsonResult=new JsonResult();
        jsonResult.code= ServiceCode.OK.getValue();
        jsonResult.data=data;
        return jsonResult;
    }

    /*生成表示 失败 的响应对象*/
    public static JsonResult fail(ServiceException e){
        return fail(e.getServiceCode(),e.getMessage());
    }

    /*生成表示 失败 的响应对象*/
    public static JsonResult fail(ServiceCode serviceCode,String message){
        JsonResult jsonResult=new JsonResult();
        jsonResult.code=serviceCode.getValue();
        jsonResult.message=message;
        return jsonResult;
    }
}
